όταν μετατρέπεις ένα τύπο σε έναν άλλο υπάρχουν 2 περιπτώσεις
- Ο δεύτερος τύπος είναι πιο γενικός από τον πρώτο και δεν έχεις απώλεια πληροφορίας (π.χ. από float σε double)
- Ο πρώτος τύπος είναι πιο γενικός από τον δεύτερο (από float σε integer) και σε αυτήν την περίπτωση έχεις απώλεια πληροφορίας.
Αυτό ισχύει και για δικούς σου τύπους (classes) στις οποίες μπορείς να δηλώσεις πώς θα γίνεται η μετατροπή αυτή. Η πρώτη περίπτωση αναφέρεται ως widening ενώ η πρώτη ως narrowing.